package cn.zhiyuan.ours.config;

import com.jfinal.config.Constants;
import com.jfinal.config.Handlers;
import com.jfinal.config.Interceptors;
import com.jfinal.config.JFinalConfig;
import com.jfinal.config.Plugins;
import com.jfinal.config.Routes;
import com.jfinal.ext.handler.ContextPathHandler;
import com.jfinal.kit.PropKit;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.druid.DruidPlugin;
import com.jfinal.template.Engine;

import cn.zhiyuan.ours.model.User;
import cn.zhiyuan.ours.route.AdminRoute;
import cn.zhiyuan.ours.route.FrontRoute;

public class DefaultConfig extends JFinalConfig {

	@Override
	public void configConstant(Constants me) {
		// 加载少量必要配置，随后可用PropKit.get(...)获取值
		PropKit.use("config.properties");
		me.setDevMode(PropKit.getBoolean("DevMode",false));
		me.setMaxPostSize(100 * 1024 * 1024);
	}

	@Override
	public void configRoute(Routes me) {
		// 添加路由
		me.add(new AdminRoute());
		me.add(new FrontRoute());
	}

	@Override
	public void configEngine(Engine me) {

	}

	@Override
	public void configPlugin(Plugins me) {

		// 配置数据库连接池插件
		DruidPlugin druidPlugin = new DruidPlugin(PropKit.get("jdbc.url"), PropKit.get("jdbc.username"),
				PropKit.get("jdbc.password").trim());
		me.add(druidPlugin);
		// 配置ActiveRecord插件
		ActiveRecordPlugin arp = new ActiveRecordPlugin(druidPlugin);
		// 所有映射在 MappingKit 中自动化搞定
		arp.addMapping("user", User.class);
		me.add(arp);
	}

	@Override
	public void configInterceptor(Interceptors me) {
		// Auto-generated method stub
	}

	@Override
	public void configHandler(Handlers me) {
		me.add(new ContextPathHandler("ContextPath"));// 设置上下文路径,防止样式丢失
	}
}